{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Concepts in Spatial Linear Modelling\n",
    "\n",
    "### Data Borrowing in Supervised Learning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import libpysal as lp\n",
    "import geopandas as gpd\n",
    "import pandas as pd\n",
    "import shapely.geometry as shp\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "listings = pd.read_csv('./data/berlin-listings.csv.gz')\n",
    "listings['geometry'] = listings[['longitude','latitude']].apply(shp.Point, axis=1)\n",
    "listings = gpd.GeoDataFrame(listings)\n",
    "listings.crs = {'init':'epsg:4269'}\n",
    "listings = listings.to_crs(epsg=3857)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7ff51ca4e2e8>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "listings.sort_values('price').plot('price', cmap='plasma')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Kernel Regressions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Kernel regressions are one exceptionally common way to allow observations to \"borrow strength\" from nearby observations. \n",
    "\n",
    "However, when working with spatial data, there are *two simultaneous senses of what is near:* \n",
    "- things that similar in attribute (classical kernel regression)\n",
    "- things that are similar in spatial position (spatial kernel regression)\n",
    "\n",
    "Below, we'll walk through how to use scikit to fit these two types of kernel regressions, show how it's not super simple to mix the two approaches together, and refer to an approach that does this correctly in another package. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, though, let's try to predict the log of an Airbnb's nightly price based on a few factors:\n",
    "- accommodates: the number of people the airbnb can accommodate\n",
    "- review_scores_rating: the aggregate rating of the listing\n",
    "- bedrooms: the number of bedrooms the airbnb has\n",
    "- bathrooms: the number of bathrooms the airbnb has\n",
    "- beds: the number of beds the airbnb offers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_data = listings[['accommodates', 'review_scores_rating', \n",
    "                       'bedrooms', 'bathrooms', 'beds', \n",
    "                       'price', 'geometry']].dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xnames = ['accommodates', 'review_scores_rating', \n",
    "               'bedrooms', 'bathrooms', 'beds' ]\n",
    "X = model_data[Xnames].values\n",
    "X = X.astype(float)\n",
    "y = np.log(model_data[['price']].values)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Further, since each listing has a location, I'll extract the set of spatial coordinates coordinates for each listing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "coordinates = np.vstack(model_data.geometry.apply(lambda p: np.hstack(p.xy)).values)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "scikit neighbor regressions are contained in the `sklearn.neighbors` module, and there are two main types:\n",
    "- `KNeighborsRegressor`, which uses a k-nearest neighborhood of observations around each focal site\n",
    "- `RadiusNeighborsRegressor`, which considers all observations within a fixed radius around each focal site.\n",
    "\n",
    "Further, these methods can use inverse distance weighting to rank the relative importance of sites around each focal; in this way, near things are given more weight than far things, even when there's a lot of near things. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sklearn.neighbors as skn\n",
    "import sklearn.metrics as skm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "shuffle = np.random.permutation(len(y))\n",
    "train,test = shuffle[:14000],shuffle[14000:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, let's fit three models:\n",
    "- `spatial`: using inverse distance weighting on the nearest 500 neighbors geograpical space\n",
    "- `attribute`: using inverse distance weighting on the nearest 500 neighbors in attribute space\n",
    "- `both`: using inverse distance weighting in both geographical and attribute space. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "KNNR = skn.KNeighborsRegressor(weights='distance', n_neighbors=500)\n",
    "spatial = KNNR.fit(coordinates[train,:],\n",
    "                  y[train,:])\n",
    "KNNR = skn.KNeighborsRegressor(weights='distance', n_neighbors=500)\n",
    "attribute = KNNR.fit(X[train,:],\n",
    "                    y[train,])\n",
    "KNNR = skn.KNeighborsRegressor(weights='distance', n_neighbors=500)\n",
    "both = KNNR.fit(np.hstack((coordinates,X))[train,:],\n",
    "                y[train,:])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To score them, I'm going to grab their out of sample prediction accuracy and get their % explained variance:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "sp_ypred =  spatial.predict(coordinates[test,:])\n",
    "att_ypred = attribute.predict(X[test,:])\n",
    "both_ypred = both.predict(np.hstack((X,coordinates))[test,:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.1443088606590084, 0.3149860849884514, -5.684468673550214e-09)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(skm.explained_variance_score(y[test,], sp_ypred),\n",
    " skm.explained_variance_score(y[test,], att_ypred),\n",
    " skm.explained_variance_score(y[test,], both_ypred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you don't know $X$, using $Wy$ would be better than nothing, but it works nowhere near as well... less than half of the variance that is explained by nearness in feature/attribute space is explained by nearness in geographical space. \n",
    "\n",
    "Making things even worse, simply glomming on the geographical information to the feature set makes the model perform horribly. \n",
    "\n",
    "*There must be another way!*\n",
    "\n",
    "One method that can exploit the fact that local data may be more informative in predicting $y$ at site $i$ than distant data is Geographically Weighted Regression, a type of Generalized Additive Spatial Model. Kind of like a Kernel Regression, GWR conducts a bunch of regressions at each training site only considering data near that site. This means it works like the kernel regressions above, but uses *both* the coordinates *and* the data in $X$ to predict $y$ at each site. It optimizes its sense of \"local\" depending on some information criteria or fit score.\n",
    "\n",
    "You can find this in the `gwr` package, and significant development is ongoing on this at `https://github.com/pysal/gwr`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Borrowing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another common case where these weights are used are in \"feature engineering.\" Using the weights matrix, you can construct neighbourhood averages of the data matrix and use these as synthetic features in your model. These often have a strong relationship to the outcome as well, since spatial data is often smooth and attributes of nearby sites often have a spillover impact on each other. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "from libpysal.weights.util import fill_diagonal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we'll construct a Kernel weight from the data that we have, make it an adaptive Kernel bandwidth, and make sure that our kernel weights don't have any self-neighbors. Since we've got the data at each site anyway, we probably shouldn't use that data *again* when we construct our neighborhood-smoothed syntetic features.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "kW = lp.weights.Kernel.from_dataframe(model_data, fixed=False, function='gaussian', k=100)\n",
    "kW = fill_diagonal(kW, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "WX = lp.weights.lag_spatial(kW, X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I like `statsmodels` regression summary tables, so I'll pop it up here. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "import statsmodels.api as sm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xtable = pd.DataFrame(X, columns=Xnames)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below are the results for the model with only the covariates used above:\n",
    "- accommodates: the number of people the airbnb can accommodate\n",
    "- review_scores_rating: the aggregate rating of the listing\n",
    "- bedrooms: the number of bedrooms the airbnb has\n",
    "- bathrooms: the number of bathrooms the airbnb has\n",
    "- beds: the number of beds the airbnb offers\n",
    "\n",
    "We've not used any of our synthetic features in `WX`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.290</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.290</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   1269.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 21 Sep 2018</td> <th>  Prob (F-statistic):</th>  <td>  0.00</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>15:41:48</td>     <th>  Log-Likelihood:    </th> <td> -9260.8</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 15516</td>      <th>  AIC:               </th> <td>1.853e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td> 15510</td>      <th>  BIC:               </th> <td>1.858e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     5</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "            <td></td>              <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>                <td>    2.9682</td> <td>    0.044</td> <td>   67.590</td> <td> 0.000</td> <td>    2.882</td> <td>    3.054</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>accommodates</th>         <td>    0.1882</td> <td>    0.004</td> <td>   44.362</td> <td> 0.000</td> <td>    0.180</td> <td>    0.197</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>review_scores_rating</th> <td>    0.0033</td> <td>    0.000</td> <td>    7.378</td> <td> 0.000</td> <td>    0.002</td> <td>    0.004</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bedrooms</th>             <td>    0.1427</td> <td>    0.008</td> <td>   18.503</td> <td> 0.000</td> <td>    0.128</td> <td>    0.158</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bathrooms</th>            <td>    0.0062</td> <td>    0.012</td> <td>    0.497</td> <td> 0.619</td> <td>   -0.018</td> <td>    0.031</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>beds</th>                 <td>   -0.0482</td> <td>    0.005</td> <td>   -9.221</td> <td> 0.000</td> <td>   -0.058</td> <td>   -0.038</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>156.822</td> <th>  Durbin-Watson:     </th> <td>   1.716</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 265.898</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.005</td>  <th>  Prob(JB):          </th> <td>1.82e-58</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 3.641</td>  <th>  Cond. No.          </th> <td>1.17e+03</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.<br/>[2] The condition number is large, 1.17e+03. This might indicate that there are<br/>strong multicollinearity or other numerical problems."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.290\n",
       "Model:                            OLS   Adj. R-squared:                  0.290\n",
       "Method:                 Least Squares   F-statistic:                     1269.\n",
       "Date:                Fri, 21 Sep 2018   Prob (F-statistic):               0.00\n",
       "Time:                        15:41:48   Log-Likelihood:                -9260.8\n",
       "No. Observations:               15516   AIC:                         1.853e+04\n",
       "Df Residuals:                   15510   BIC:                         1.858e+04\n",
       "Df Model:                           5                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "========================================================================================\n",
       "                           coef    std err          t      P>|t|      [0.025      0.975]\n",
       "----------------------------------------------------------------------------------------\n",
       "const                    2.9682      0.044     67.590      0.000       2.882       3.054\n",
       "accommodates             0.1882      0.004     44.362      0.000       0.180       0.197\n",
       "review_scores_rating     0.0033      0.000      7.378      0.000       0.002       0.004\n",
       "bedrooms                 0.1427      0.008     18.503      0.000       0.128       0.158\n",
       "bathrooms                0.0062      0.012      0.497      0.619      -0.018       0.031\n",
       "beds                    -0.0482      0.005     -9.221      0.000      -0.058      -0.038\n",
       "==============================================================================\n",
       "Omnibus:                      156.822   Durbin-Watson:                   1.716\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              265.898\n",
       "Skew:                          -0.005   Prob(JB):                     1.82e-58\n",
       "Kurtosis:                       3.641   Cond. No.                     1.17e+03\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "[2] The condition number is large, 1.17e+03. This might indicate that there are\n",
       "strong multicollinearity or other numerical problems.\n",
       "\"\"\""
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "onlyX = sm.OLS(y,sm.add_constant(Xtable)).fit()\n",
    "onlyX.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then, we could fit a model using the neighbourhood average synthetic features as well:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "WXtable = pd.DataFrame(WX, columns=['lag_{}'.format(name) for name in Xnames])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "XWXtable = pd.concat((Xtable,WXtable),axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.311</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.311</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   701.4</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 21 Sep 2018</td> <th>  Prob (F-statistic):</th>  <td>  0.00</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>15:41:50</td>     <th>  Log-Likelihood:    </th> <td> -9026.9</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 15516</td>      <th>  AIC:               </th> <td>1.808e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td> 15505</td>      <th>  BIC:               </th> <td>1.816e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>    10</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "              <td></td>                <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>                    <td>    2.7158</td> <td>    0.114</td> <td>   23.723</td> <td> 0.000</td> <td>    2.491</td> <td>    2.940</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>accommodates</th>             <td>    0.1829</td> <td>    0.004</td> <td>   43.616</td> <td> 0.000</td> <td>    0.175</td> <td>    0.191</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>review_scores_rating</th>     <td>    0.0035</td> <td>    0.000</td> <td>    8.036</td> <td> 0.000</td> <td>    0.003</td> <td>    0.004</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bedrooms</th>                 <td>    0.1465</td> <td>    0.008</td> <td>   19.126</td> <td> 0.000</td> <td>    0.131</td> <td>    0.161</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bathrooms</th>                <td>   -0.0135</td> <td>    0.012</td> <td>   -1.087</td> <td> 0.277</td> <td>   -0.038</td> <td>    0.011</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>beds</th>                     <td>   -0.0448</td> <td>    0.005</td> <td>   -8.616</td> <td> 0.000</td> <td>   -0.055</td> <td>   -0.035</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_accommodates</th>         <td>    0.0162</td> <td>    0.001</td> <td>   16.632</td> <td> 0.000</td> <td>    0.014</td> <td>    0.018</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_review_scores_rating</th> <td>   -0.0004</td> <td> 4.29e-05</td> <td>   -9.279</td> <td> 0.000</td> <td>   -0.000</td> <td>   -0.000</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_bedrooms</th>             <td>    0.0001</td> <td>    0.002</td> <td>    0.086</td> <td> 0.931</td> <td>   -0.003</td> <td>    0.003</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_bathrooms</th>            <td>    0.0240</td> <td>    0.002</td> <td>   10.595</td> <td> 0.000</td> <td>    0.020</td> <td>    0.028</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_beds</th>                 <td>   -0.0150</td> <td>    0.001</td> <td>  -13.860</td> <td> 0.000</td> <td>   -0.017</td> <td>   -0.013</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>163.213</td> <th>  Durbin-Watson:     </th> <td>   1.786</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 278.468</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.023</td>  <th>  Prob(JB):          </th> <td>3.40e-61</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 3.655</td>  <th>  Cond. No.          </th> <td>9.71e+04</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.<br/>[2] The condition number is large, 9.71e+04. This might indicate that there are<br/>strong multicollinearity or other numerical problems."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.311\n",
       "Model:                            OLS   Adj. R-squared:                  0.311\n",
       "Method:                 Least Squares   F-statistic:                     701.4\n",
       "Date:                Fri, 21 Sep 2018   Prob (F-statistic):               0.00\n",
       "Time:                        15:41:50   Log-Likelihood:                -9026.9\n",
       "No. Observations:               15516   AIC:                         1.808e+04\n",
       "Df Residuals:                   15505   BIC:                         1.816e+04\n",
       "Df Model:                          10                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "============================================================================================\n",
       "                               coef    std err          t      P>|t|      [0.025      0.975]\n",
       "--------------------------------------------------------------------------------------------\n",
       "const                        2.7158      0.114     23.723      0.000       2.491       2.940\n",
       "accommodates                 0.1829      0.004     43.616      0.000       0.175       0.191\n",
       "review_scores_rating         0.0035      0.000      8.036      0.000       0.003       0.004\n",
       "bedrooms                     0.1465      0.008     19.126      0.000       0.131       0.161\n",
       "bathrooms                   -0.0135      0.012     -1.087      0.277      -0.038       0.011\n",
       "beds                        -0.0448      0.005     -8.616      0.000      -0.055      -0.035\n",
       "lag_accommodates             0.0162      0.001     16.632      0.000       0.014       0.018\n",
       "lag_review_scores_rating    -0.0004   4.29e-05     -9.279      0.000      -0.000      -0.000\n",
       "lag_bedrooms                 0.0001      0.002      0.086      0.931      -0.003       0.003\n",
       "lag_bathrooms                0.0240      0.002     10.595      0.000       0.020       0.028\n",
       "lag_beds                    -0.0150      0.001    -13.860      0.000      -0.017      -0.013\n",
       "==============================================================================\n",
       "Omnibus:                      163.213   Durbin-Watson:                   1.786\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              278.468\n",
       "Skew:                          -0.023   Prob(JB):                     3.40e-61\n",
       "Kurtosis:                       3.655   Cond. No.                     9.71e+04\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "[2] The condition number is large, 9.71e+04. This might indicate that there are\n",
       "strong multicollinearity or other numerical problems.\n",
       "\"\"\""
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "withWX = sm.OLS(y,sm.add_constant(XWXtable)).fit()\n",
    "withWX.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gains a nice bump in the model fit with no significant hit to model complexity. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Going Further"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We could also use a spatial autoregressive model to further improve fit. This ceases to be estimatable in `statsmodels` and instead requires `pysal.spreg`, the spatial regression submodule of PySAL. Generalized method of moments estimators are available in `pysal.spreg.GM_Lag`, and maximum likelihood methods in `pysal.spreg.ML_Lag`. \n",
    "\n",
    "These methods are often harder to fit, though, so like `gwr`, they may be less performant on big data. But, you can usually achieve a gain in fit for no significant increase in the number of terms by using these models. "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:scipygeo18]",
   "language": "python",
   "name": "conda-env-scipygeo18-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
